from multiprocessing import Array, Process

#建立通信——共享内存
result = Array('i', 12)  #括号内，第一参数是数组类型（i是int，u是utf-8，即字符串），第二参数是共享内存长度

#对同类进行封装
class wash:
    price =3000

#具体处理细节
def ggl(i, result):   #注意：需要传入共享内存参数result
    w=wash()
    print(f'result id:{id(result)}')

#共享内存的处理放在处理细节中
    result[i]=w.price

#启用进程
if __name__ =='__main__':
#建立多进程
    n_array=[]
    for i in range(12):
        #p =Process(target=ggl, args=(i, result))  #args=后面接元组,不传入共享内存参数，无法正确存入数据
        p = Process(target=ggl, args=(i, result))
        #print(i)
        p.start()
        n_array.append(p)
#join加在多进程中
    for n in n_array:
        n.join()     #进程在前面，进程完成后，在执行后面语句
    print('你好')
#取共同内存内的值
    for i in result:
        print(i)    #相当于pop()，每去出一个值，就会减少一个值
